package com.patterns.memento;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;

/**
 * 负责人类
 * 管理备忘录对象StudentMemento
 * @author huangke
 *
 */
public class StudentCareTaker {
	//private List<StudentMemento> mementos = new ArrayList<StudentMemento>();;//持有备忘录对象，可备忘多次，如只备忘一次不需要使用容器
	
	//将备忘录压栈，栈的特点是先进后出
	//如果希望程序在下次启动时也可以恢复，可以将数据序列化到硬盘
	private Stack<StudentMemento> stack = new Stack<StudentMemento>();
	
	public StudentMemento last() {
		StudentMemento memento = stack.peek(); //获取栈顶的备份，不会删除
		stack.remove(memento);//删除指定备份
		return memento;
	}

	public void setMemento(StudentMemento memento) {
		this.stack.push(memento);
	}
	
}
